import router from '@/router/index'
import {getToken} from '@/composables/auth'
import {showMessage} from '@/composables/util'
import {showPageLoading, hidePageLoading} from '@/composables/util'
import {useBlogSettingsStore} from "@/stores/blog-settings.js";

// 全局路由前置守卫
router.beforeEach((to, from, next) => {
    const blogStore = useBlogSettingsStore()

    // 展示页面加载 Loading
    showPageLoading()

    // 若用户想访问后台（以 /admin 为前缀的路由）
    // 未登录，则强制跳转登录页
    let token = getToken()
    if (!token && to.path.startsWith('/admin')) {
        showMessage('请先登录', 'warning')
        next({path: '/login'})
    } else if (token && to.path === '/login') {
        // 若用户已经登录，且重复访问登录页
        showMessage('请勿重复登录', 'warning')
        // 跳转后台首页
        next({path: '/admin/index'})
    } else if (!to.path.startsWith('/admin')) {
        // 校验是否有博客设置信息
        blogStore.handleBlogSettings()
    }
    next()
})

// 全局路由后置守卫
router.afterEach((to, from) => {
    // 动态设置页面 Title
    document.title = (to.meta.title ? to.meta.title : '') + ' - Weblog'
    // 隐藏页面加载 Loading
    hidePageLoading()
})